## pval_cutoff: 0.05
## lfc_cutoff: 0.58
## low_counts_cutoff: 10
General statistics
# Number of samples
length(counts_data)
## [1] 6
# Number of genes
nrow(counts_data)
## [1] 43432
# Total counts
colSums(counts_data)
## SRR13535276 SRR13535278 SRR13535280 SRR13535300 SRR13535304 SRR13535302
## 2902259 2219026 3493884 2399370 1781062 1516859

Create DDS objects
# Create DESeqDataSet object
dds <- get_DESeqDataSet_obj(counts_data, ~ experimental_class_type)
## [1] TRUE
## [1] TRUE
## [1] "DESeqDataSet object of length 43432 with 0 metadata columns"
## [1] "DESeqDataSet object of length 13740 with 0 metadata columns"
colData(dds)
## DataFrame with 6 rows and 3 columns
## experimental_class_type regime treatment
## <factor> <factor> <character>
## SRR13535276 A in space without gravity without nanoceria
## SRR13535278 A in space without gravity without nanoceria
## SRR13535280 A in space without gravity without nanoceria
## SRR13535300 E on land without nanoceria
## SRR13535304 E on land without nanoceria
## SRR13535302 E on land without nanoceria
Sample-to-sample comparisons
# Transform data (blinded rlog)
rld <- get_transformed_data(dds)
PCA plot
pca <- rld$pca
pca_df <- cbind(as.data.frame(colData(dds)) %>% rownames_to_column(var = 'name'), pca$x)
summary(pca)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 39.1457 33.8596 24.6795 18.31501 16.63224 4.926e-14
## Proportion of Variance 0.3929 0.2940 0.1562 0.08601 0.07093 0.000e+00
## Cumulative Proportion 0.3929 0.6869 0.8431 0.92907 1.00000 1.000e+00
ggplot(pca_df, aes(x = PC1, y = PC2, color = regime)) +
geom_point() +
geom_text(aes(label = name), position = position_nudge(y = -2), show.legend = F, size = 3) +
scale_color_manual(values = colors_default) +
scale_x_continuous(expand = c(0.2, 0))

Correlation heatmap
pheatmap(
cor(rld$matrix),
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
color = brewer.pal(8, 'YlOrRd')
)

Wald test results
# DE analysis using Wald test
dds_full <- DESeq(dds)
colData(dds_full)
## DataFrame with 6 rows and 4 columns
## experimental_class_type regime treatment sizeFactor
## <factor> <factor> <character> <numeric>
## SRR13535276 A in space without gravity without nanoceria 0.959198770169552
## SRR13535278 A in space without gravity without nanoceria 1.35899935691366
## SRR13535280 A in space without gravity without nanoceria 1.0855420138387
## SRR13535300 E on land without nanoceria 1.46247029781617
## SRR13535304 E on land without nanoceria 0.585344531806422
## SRR13535302 E on land without nanoceria 0.779070987419604
# Wald test results
res <- results(
dds_full,
contrast = c('experimental_class_type', condition, control),
alpha = pval_cutoff
)
res
## log2 fold change (MLE): experimental_class_type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 13740 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000025900 4.84109070941056 -4.90151517677601 1.95148160264003 -2.5116891546121 0.012015487358361 NA
## ENSMUSG00000098104 3.91151128129362 0.771163341044934 1.09550617521361 0.70393335838072 0.48147427609787 NA
## ENSMUSG00000033845 107.326663371825 -0.0961865427489715 0.427230746687796 -0.225139560985907 0.821870705674161 0.937911922006377
## ENSMUSG00000102275 2.24476039319007 -0.596925186764612 1.46236685638054 -0.408191134912648 0.68313335607389 NA
## ENSMUSG00000025903 97.17198870624 0.00216827591802481 0.483685073110851 0.00448282578595906 0.996423234496235 0.99885741697269
## ... ... ... ... ... ... ...
## ENSMUSG00000095562 12.2586827221942 0.888255088892857 0.981058162334407 0.905405125807499 0.365250801219668 0.691617637139739
## ENSMUSG00000051412 486.050762713583 0.151847711961438 0.801785454726041 0.189386962642422 0.849789541872749 0.949108489673223
## ENSMUSG00000061654 1.66824740534976 1.42110993020852 2.48241085052721 0.572471688119922 0.567002461092904 NA
## ENSMUSG00000079834 28.7730470784915 0.981993624881488 0.806178491386502 1.21808462440199 0.223191816143189 0.55818881538483
## ENSMUSG00000096768 189.598056887415 0.560812446185138 0.639782789616438 0.876566946293375 0.380721899128402 0.700452136885829
mcols(res)
## DataFrame with 6 rows and 2 columns
## type description
## <character> <character>
## baseMean intermediate mean of normalized counts for all samples
## log2FoldChange results log2 fold change (MLE): experimental_class_type A vs E
## lfcSE results standard error: experimental class type A vs E
## stat results Wald statistic: experimental class type A vs E
## pvalue results Wald test p-value: experimental class type A vs E
## padj results BH adjusted p-values
summary(res)
##
## out of 13740 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up) : 281, 2%
## LFC < 0 (down) : 161, 1.2%
## outliers [1] : 140, 1%
## low counts [2] : 2931, 21%
## (mean count < 7)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results
Summary details
# Upregulated genes (LFC > 0)
res_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res[which(is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 140 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000067780 323.139940634934 -2.39912008057394 1.41451513533989 -1.69607240010017 NA NA
## ENSMUSG00000025981 153.69296986888 -0.310013187098316 1.1441624763323 -0.270952066259057 NA NA
## ENSMUSG00000038349 102.362030766044 -3.96981540846435 1.20132944845498 -3.30451851785527 NA NA
## ENSMUSG00000026024 51.4161905875205 -3.54642501636351 1.24204846705579 -2.85530324333488 NA NA
## ENSMUSG00000025964 241.469239526279 -6.34641039604854 1.35335622318313 -4.68938649509558 NA NA
## ... ... ... ... ... ... ...
## ENSMUSG00000061273 272.096404697694 -1.54539499209852 0.949684744766932 -1.62727157681972 NA NA
## ENSMUSG00000067878 33.55498693322 -3.88755218488343 1.61206647250488 -2.41153342693296 NA NA
## ENSMUSG00000031365 127.894334691376 -0.508058906044352 1.1038164590458 -0.460274805544707 NA NA
## ENSMUSG00000043518 69.5692388393559 -9.72977422759859 3.90754646538913 -2.4899957847666 NA NA
## ENSMUSG00000059493 126.564334158208 -1.49000313250006 2.16572761680368 -0.687991934414679 NA NA
# Low counts (only padj is NA)
res[which(is.na(res$padj) & !is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 2931 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000025900 4.84109070941056 -4.90151517677601 1.95148160264003 -2.5116891546121 0.012015487358361 NA
## ENSMUSG00000098104 3.91151128129362 0.771163341044934 1.09550617521361 0.70393335838072 0.48147427609787 NA
## ENSMUSG00000102275 2.24476039319007 -0.596925186764612 1.46236685638054 -0.408191134912648 0.68313335607389 NA
## ENSMUSG00000102135 4.93915823537701 -0.322113491916497 1.06284098701961 -0.303068376032203 0.761837753719857 NA
## ENSMUSG00000098201 1.99278194747158 -0.884397871902459 1.69095966329663 -0.52301535695906 0.600963566452397 NA
## ... ... ... ... ... ... ...
## ENSMUSG00000087340 2.04958386890956 1.27887463682576 1.68425236885798 0.759312951237179 0.447665371914488 NA
## ENSMUSG00000087201 2.68523259554908 -3.97622263635048 2.80146421948035 -1.4193372910856 0.155800705140243 NA
## ENSMUSG00000081137 1.63569255563917 3.96878632079059 2.17852213410522 1.82177920465365 0.0684884943144259 NA
## ENSMUSG00000035299 3.20643912563949 1.64699152491423 1.81493288563235 0.907466903020159 0.364159944000123 NA
## ENSMUSG00000061654 1.66824740534976 1.42110993020852 2.48241085052721 0.572471688119922 0.567002461092904 NA
Shrunken LFC results
plotMA(res)

# Shrunken LFC results
res_shrunken <- lfcShrink(
dds_full,
coef = str_c('experimental_class_type_', condition, '_vs_', control),
type = 'apeglm'
)
res_shrunken
## log2 fold change (MAP): experimental class type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 13740 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000025900 4.84109070941056 -0.262536086779112 0.579636690384519 0.012015487358361 0.135910162079128
## ENSMUSG00000098104 3.91151128129362 0.125747399467366 0.451307444942956 0.48147427609787 NA
## ENSMUSG00000033845 107.326663371825 -0.0521107382770368 0.317451090530027 0.821870705674161 0.938100629316973
## ENSMUSG00000102275 2.24476039319007 -0.0546953612201723 0.452408551895452 0.68313335607389 NA
## ENSMUSG00000025903 97.17198870624 0.00188877264948008 0.336988591434286 0.996423234496235 0.99894913255571
## ... ... ... ... ... ...
## ENSMUSG00000095562 12.2586827221942 0.172376735714119 0.461358833442547 0.365250801219668 0.695391998628502
## ENSMUSG00000051412 486.050762713583 0.0405263332031704 0.407228266723103 0.849789541872749 0.949488886694501
## ENSMUSG00000061654 1.66824740534976 0.0491091526965159 0.46630415878391 0.567002461092904 NA
## ENSMUSG00000079834 28.7730470784915 0.27573831483339 0.488714143219032 0.223191816143189 0.561603102094391
## ENSMUSG00000096768 189.598056887415 0.21017130924388 0.416029303919732 0.380721899128402 0.703820029191432
plotMA(res_shrunken)

mcols(res_shrunken)
## DataFrame with 5 rows and 2 columns
## type description
## <character> <character>
## baseMean intermediate mean of normalized counts for all samples
## log2FoldChange results log2 fold change (MAP): experimental class type A vs E
## lfcSE results posterior SD: experimental class type A vs E
## pvalue results Wald test p-value: experimental class type A vs E
## padj results BH adjusted p-values
summary(res_shrunken, alpha = pval_cutoff)
##
## out of 13740 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up) : 267, 1.9%
## LFC < 0 (down) : 153, 1.1%
## outliers [1] : 140, 1%
## low counts [2] : 2131, 16%
## (mean count < 4)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results
Summary details
# Upregulated genes (LFC > 0)
res_shrunken_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_shrunken_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res_shrunken[which(is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 140 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000067780 323.139940634934 -0.226037712360566 0.533345338710921 NA NA
## ENSMUSG00000025981 153.69296986888 -0.0435990913852108 0.43743505283154 NA NA
## ENSMUSG00000038349 102.362030766044 -3.02201867539643 1.50166560740759 NA NA
## ENSMUSG00000026024 51.4161905875205 -0.587164753132586 1.28631406700579 NA NA
## ENSMUSG00000025964 241.469239526279 -5.69002407691351 1.46262519920869 NA NA
## ... ... ... ... ... ...
## ENSMUSG00000061273 272.096404697694 -0.353414603160655 0.585397387264538 NA NA
## ENSMUSG00000067878 33.55498693322 -0.248968488488792 0.566674178000861 NA NA
## ENSMUSG00000031365 127.894334691376 -0.0770873301806486 0.440633405156159 NA NA
## ENSMUSG00000043518 69.5692388393559 -0.0461192592333893 0.473531709643179 NA NA
## ENSMUSG00000059493 126.564334158208 -0.0619432263051295 0.467317181207905 NA NA
# Low counts (only padj is NA)
res_shrunken[which(is.na(res_shrunken$padj) & !is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 2131 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000098104 3.91151128129362 0.125747399467366 0.451307444942956 0.48147427609787 NA
## ENSMUSG00000102275 2.24476039319007 -0.0546953612201723 0.452408551895452 0.68313335607389 NA
## ENSMUSG00000098201 1.99278194747158 -0.0636479809933553 0.459118891617694 0.600963566452397 NA
## ENSMUSG00000103903 3.38094901917005 0.0983880508368446 0.47234050734291 0.352678678375683 NA
## ENSMUSG00000079671 1.76089510609905 -0.0306950425211257 0.45347583020391 0.804064397033141 NA
## ... ... ... ... ... ...
## ENSMUSG00000087340 2.04958386890956 0.0963680641553455 0.46637800013859 0.447665371914488 NA
## ENSMUSG00000087201 2.68523259554908 -0.0854355907959891 0.479345334235406 0.155800705140243 NA
## ENSMUSG00000081137 1.63569255563917 0.159570206757925 0.505307711762914 0.0684884943144259 NA
## ENSMUSG00000035299 3.20643912563949 0.0989044905444302 0.471570608715285 0.364159944000123 NA
## ENSMUSG00000061654 1.66824740534976 0.0491091526965159 0.46630415878391 0.567002461092904 NA
Visualizing results
Heatmaps
# Plot normalized counts (z-scores)
pheatmap(counts_sig_norm[2:7],
color = brewer.pal(8, 'YlOrRd'),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
border_color = NA,
fontsize = 10,
scale = 'row',
fontsize_row = 10,
height = 20)

# Plot log-transformed counts
pheatmap(counts_sig_log[2:7],
color = rev(brewer.pal(8, 'RdYlBu')),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
border_color = NA,
fontsize = 10,
fontsize_row = 10,
height = 20)

# Plot log-transformed counts (top 24 DE genes)
pheatmap((counts_sig_log %>% filter(ensembl_gene_id %in% res_sig_df$ensembl_gene_id[1:24]))[2:7],
color = rev(brewer.pal(8, 'RdYlBu')),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
fontsize = 10,
fontsize_row = 10,
height = 20)

Volcano plots
# Unshrunken LFC
res_df %>%
mutate(
sig_threshold = if_else(
padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
'non-DE'
)
) %>%
filter(!is.na(sig_threshold)) %>%
ggplot() +
geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
scale_color_manual(values = c('blue', 'red', 'gray')) +
xlab('log2 fold change') +
ylab('-log10 adjusted p-value')

# Shrunken LFC
res_shrunken_df %>%
mutate(
sig_threshold = if_else(
padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
'non-DE'
)
) %>%
filter(!is.na(sig_threshold)) %>%
ggplot() +
geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
scale_color_manual(values = c('blue', 'red', 'gray')) +
xlab('log2 fold change') +
ylab('-log10 adjusted p-value')

GSEA (all)
Hallmark genesets
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

GSEA (DE)
Hallmark genesets
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

System Info
sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] grid parallel stats4 stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] VennDiagram_1.6.20 futile.logger_1.4.3 fgsea_1.12.0 Rcpp_1.0.3 RColorBrewer_1.1-2 pheatmap_1.0.12 DESeq2_1.26.0 SummarizedExperiment_1.16.1 DelayedArray_0.12.3 BiocParallel_1.20.1 matrixStats_0.57.0 Biobase_2.46.0 GenomicRanges_1.38.0 GenomeInfoDb_1.22.1 IRanges_2.20.2 S4Vectors_0.24.4 BiocGenerics_0.32.0 scales_1.1.1 forcats_0.4.0 stringr_1.4.0 dplyr_1.0.2 purrr_0.3.3 readr_1.3.1 tidyr_1.0.0 tibble_3.1.0 ggplot2_3.3.3 tidyverse_1.2.1
##
## loaded via a namespace (and not attached):
## [1] colorspace_1.4-1 ellipsis_0.3.0 htmlTable_1.13.3 XVector_0.26.0 base64enc_0.1-3 rstudioapi_0.10 farver_2.1.0 bit64_0.9-7 mvtnorm_1.1-1 apeglm_1.8.0 AnnotationDbi_1.48.0 fansi_0.4.0 lubridate_1.7.4 xml2_1.2.2 splines_3.6.3 geneplotter_1.64.0 knitr_1.25 Formula_1.2-3 jsonlite_1.6 broom_0.7.5 annotate_1.64.0 cluster_2.1.0 png_0.1-7 compiler_3.6.3 httr_1.4.1 backports_1.1.5 assertthat_0.2.1 Matrix_1.2-18 cli_1.1.0 formatR_1.7 acepack_1.4.1 htmltools_0.5.1.1 tools_3.6.3 coda_0.19-3 gtable_0.3.0 glue_1.4.2 GenomeInfoDbData_1.2.2 fastmatch_1.1-0 bbmle_1.0.23.1 cellranger_1.1.0 jquerylib_0.1.3 vctrs_0.3.4 xfun_0.22 rvest_0.3.5 lifecycle_0.2.0 XML_3.99-0.3 MASS_7.3-51.5 zlibbioc_1.32.0 hms_0.5.2 lambda.r_1.2.4 yaml_2.2.0 memoise_1.1.0 gridExtra_2.3 emdbook_1.3.12 sass_0.3.1 bdsmatrix_1.3-4 rpart_4.1-15 latticeExtra_0.6-29 stringi_1.4.3 RSQLite_2.2.1 genefilter_1.68.0 checkmate_1.9.4 rlang_0.4.8 pkgconfig_2.0.3 bitops_1.0-6 evaluate_0.14 lattice_0.20-38 labeling_0.3 htmlwidgets_1.5.1 bit_1.1-15.1 tidyselect_1.1.0 plyr_1.8.4 magrittr_1.5 R6_2.4.0 generics_0.0.2 Hmisc_4.3-0 DBI_1.1.0 pillar_1.5.1 haven_2.2.0 foreign_0.8-75 withr_2.1.2 survival_3.1-8 RCurl_1.95-4.12 nnet_7.3-12 modelr_0.1.5 crayon_1.3.4 futile.options_1.0.1 utf8_1.1.4 rmarkdown_2.7 jpeg_0.1-8.1 locfit_1.5-9.4 readxl_1.3.1 data.table_1.13.6 blob_1.2.1 digest_0.6.27 xtable_1.8-4 numDeriv_2016.8-1.1 munsell_0.5.0 bslib_0.2.4